<template>
    <div>
        <!-- 头部导航
         left-arrow：左边箭头
         click-left: 点击左边箭头会触发的事件
         $router.back(): 返回上一个路由路径
         -->
        <van-nav-bar
            title="精彩评论"
            left-arrow
            @click-left="$router.back()"
            />
        <!-- <h1>评论列表</h1> -->
        <!-- 评列表 -->
        <div class="item" v-for="item in commentList" :key="item.id">
            <div class="head">
                <img :src="item.user.head_img"
                    alt />
                <div>
                    <p>{{item.user.nickname}}</p>
                    <span>{{item.create_date}}</span>
                </div>
                <span @click="replyFn(item.id)">回复</span>
            </div>
            <!-- 使用组件 嵌套评内容 start -->
            <commentItem v-if="item.parent" 
            :parent="item.parent" @replyEvent="replyFn"></commentItem>
            <!-- 嵌套评内容 end -->
            <div class="text">{{ item.content }}</div>
        </div>
        <!-- 底部评论块 -->
        <commentFooter ref="footer" :obj="article"
         @updateEvent="getCommentList"></commentFooter>
    </div>
</template>

<script>
import { post_comment } from "@/api/news.js" 
import commentItem from "@/components/commentItem.vue" // 引入组件
export default {
    components: { // 注册组件
        commentItem
    },
    data(){
        return {
            article: {},
            id: null,
            commentList: []
        }
    },
    created(){
        this.id = this.$route.query.id;
        this.getCommentList()
    },
    methods: {
        // 回复
        replyFn(id){
            // 实现控制 发布评论内容的模块 显示
            // 经过分析，我们发现，只需调用一下子组件中的
            // handlerFocus函数即可实现此功能
            console.log(this.$refs.footer);
            this.$refs.footer.handlerFocus()
            // 实现 --- 父传子
            this.$refs.footer.parent_id = id;
        },
        // 获取评论列表
        getCommentList(){
            post_comment(this.id).then(res=>{
                console.log(48,res);
                this.commentList = res.data.data;
            })
        }
    }
}
</script>

<style lang="less" scoped>
/deep/.van-nav-bar{
    border-bottom: 1px solid #ddd;
    .van-icon-arrow-left{
        color: #000;
    }
}
.item {
    padding: 10px;
    border-bottom: 1px solid #ccc;
    .head {
        display: flex;
        justify-content: space-between;
        align-items: center;
        > img {
            width: (50/360) * 100vw;
            height: (50/360) * 100vw;
            display: block;
            border-radius: 50%;
        }
        > div {
            flex: 1;
            display: flex;
            flex-direction: column;
            margin-left: 10px;
            > span {
                font-size: 12px;
                color: #999;
                line-height: 25px;
            }
        }
        > span {
            color: #999;
            font-size: 13px;
        }
    }
    .text {
        font-size: 14px;
        color: #333;
        padding: 20px 0 10px 0;
    }
}


</style>